#ifndef _FONCTION_BASE

#include "arbre.hpp"
#include "hashage.hpp"
// #include "structure_index.hpp"
#include <cstdio>
#include <cstring>
using namespace std;

#define _FONCTION_BASE

// Menu de selection des actions
void menu();

// Saisir un nom de fichier
void text_entry(string & file);

// Test si le nom de fichier saisi existe
// Sil nexiste pas on redemande la saisi et on renvoie le resultat ds name_file
// Si i=0 alors on demande la saisi dun fichier pour remplir lindex
// Si i=1 alors on demande la siasi dun fichier pour lindex
void test_open_file(string & name_file,int i);

// modification des caractéres majuscules ou avec accents
void modif_cara(string & sentence);

// Lecture du texte dans un fichier ligne par ligne
void read_file(string & file,chained_word & c_w);

// Lire une ligne, donne le numero de ligne et renvoie la ligne
// Equivaut a getLineInFile
void get_line(FILE * file,string & line,int & cpt);

// Met ds c_w chaque mot de line ansi que la ligne
// Equivaut a getNextWord
void separet_word(string line,int cpt,chained_word & c_w);

// Normalise les mots composés
void transforme(string & line,int position);

// Lire une ligne, donne le numero de ligne et renvoie la ligne
void get_line(FILE * file,string & line,int & cpt);

// Lecture du fichier index
void initialisation_index(chained_index & c_i);

// Permet de stocker nombre de fois quun mot apparait dans c_index depuis c_file
// Affichage des mots et de lignes trouves par rapport a lensemble des mots de lindex
void get_word(chained_word c_file,chained_word & c_index);

#endif
